logback控制台打印信息 | 您所在的位置:网站首页 › logback 日志打印级别 › logback控制台打印信息 |
一)logback日志组件 简介:logback是一款开源日志组件,属于Log4j的升级版本,现在项目组使用的次数越来越多。 优点: 1、初始化加载内存小 2、配置修改时,自动重新加载配置文件,扫描过程快且安全 组成模块:logback-core、logback-classic、logback-access logback-core提供了logback的核心功能,是另外两个组件的基础; logback-classic模块实现了SLF4J API; logback-access模块与Servlet容器集成提供Http来访问日志的功能。 使用方式:在maven中pom.xml导入jar ch.qos.logback logback-core 1.1.11 ch.qos.logback logback-classic 1.1.11 ch.qos.logback logback-access 1.1.11 org.slf4j slf4j-api 1.7.25logback日志扫描顺序:(logback支持后缀名称为groovy与xml两种配置方式) 第一步:先在System Property系统配置文件中查找是否有logback.configurationFile对应的value 第二步:在classpath下寻找是否有logback.groovy文件 第三步:在classpath下寻找是否有logback-test.xml文件 第四步:在classpath下寻找是否有logback.xml文件 以上4步,只需要符合其中一步逻辑即可,具体代码实现可见ch.qos.logback.classic.util.ContextInitializer类的findURLOfDefaultConfigurationFile方法。 如果以上4步都步符合,logback会默认构造一个控制台输出日志,并会有默认的日志格式。 初始化方式: 第一种:通过指定名称初始化 private final static Logger LOGGER = LoggerFactory.getLogger(“HelloLogback”); 第二种:通过Class的方式初始化 private final static Logger LOGGER = LoggerFactory.getLogger(HelloLogback.class); package com.oysept.logback; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class HelloLogback { private final static Logger LOGGER = LoggerFactory.getLogger(HelloLogback.class); public static void main(String[] args) { LOGGER.debug("this is debug message"); LOGGER.info("this is info message"); LOGGER.warn("this is warning message"); LOGGER.error("this is error message"); LOGGER.warn("this is login message"); }} 二)logback日志控制台输出 在logback.xml中添加控制台输出日志配置 ${pattern} UTF-8 logback.xml配置文件详解1、configuration:配置根节点 2、property:属性变量 3、appender:日志输出的目的地 ${pattern} UTF-8 4、root:根日志对象 三)logback日志磁盘文件输出在logback.xml中添加磁盘输出日志配置(该方式用的较少) ${appName} ${rootPath}/${baseFile}.log true false ${pattern} UTF-8 四)logback日志滚动输出(磁盘)在logback.xml中添加磁盘输出日志配置,当设置生效时,按照具体的设置生成日志文件。如当日志文件超过一定大小时,重新生成一个新日志文件存储。 优化点:由于每次输出日志到磁盘,都会进行IO流操作,所以可以结合异步输出日志的方式实现功能,当日志到一定量的时候,再一次写入到磁盘文件中。 ${appName} ${rootPath}/${baseFile}.log true false ${rootPath}/${baseFile}_%d{yyyy-MM-dd}.log.gz 30 ${pattern} UTF-8 0 10000 把日志异步输出到磁盘文件中,避免每次都进行磁盘IO操作 0 10000日志rollingPolicy滚动策略详解 第一种:根据时间制定日志文件的滚动策略,如:按天、按小时、按分钟生成日志文件 ch.qos.logback.core.rolling.TimeBasedRollingPolicy ${rootPath}/${baseFile}_%d{yyyy-MM-dd}.log.gz 30 第二种:表示如果日志文件大小超过指定范围时,会根据文件名拆分成多个文件;ch.qos.logback.core.rolling.FixedWindowRollingPolicy ${baseFile}_.%i.log.gz 1 3 第三种:和rollingPolicy一样平级的策略triggeringPolicy,表示根据日志文件大小,超过制定大小会触发日志滚动; ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy 5MB 五)实战中logback.xml配置文件 ${appName} ${pattern} UTF-8 ${rootPath}/${baseFile}.log true false ${rootPath}/${baseFile}_%d{yyyy-MM-dd}.log.gz 30 ${pattern} UTF-8 ${rootPath}/${baseFile}_error.log true false ${rootPath}/${baseFile}_error_%d{yyyy-MM-dd}.log.gz 30 ERROR ACCEPT DENY ${pattern} UTF-8 0 10000 |
CopyRight 2018-2019 实验室设备网 版权所有 |